package myredis

import (
	"awesomeProject/secret"
	"fmt"
	"github.com/gomodule/redigo/redis"
)

type EasyRedis struct {
	conn redis.Conn
}

//先申明一个连接对象·
var easy = EasyRedis{}

//初始一个对象
func init() {

	var err error
	easy.conn, err = redis.Dial("tcp", secret.ConnAddr)
	if err != nil {
		fmt.Println("redis 连接失败:", err)
		return
	}
	fmt.Println("连接成功")
}

// 方法集
type shortCut interface {
	Set(k, v string) (i interface{}, err error)
	Get(k string) (value interface{}, err error)
	Close() (err error)
}

func (e *EasyRedis) Set(k, v string) (i interface{}, err error) {
	i, err = e.conn.Do("SET", k, v)
	if err != nil {
		fmt.Println("Set Wrong", err)
		return
	}
	return
}

func (e *EasyRedis) Get(k string) (value interface{}, err error) {
	value, err = redis.String(e.conn.Do("GET", k))
	if err != nil {
		fmt.Println("Get Wrong", err)
		return
	}
	return
}

func (e *EasyRedis) Close() (err error) {
	err = e.conn.Close()
	return
}

func Test() {
	//fmt.Println(reflect.TypeOf(conn))
	//fmt.Println(reflect.ValueOf(conn))
	//c:= reflect.ValueOf(conn).Interface()
	//fmt.Println(c)
	//fmt.Println(reflect.TypeOf(c))
	//
	//// 插入新字符创
	//_, err := conn.Do("SET", "mykey", "superSun")
	//if err != nil {
	//	fmt.Println("字符串设置失败:", err)
	//} else {
	//	fmt.Println("字符串设置成功")
	//}
	//
	////读取字符串
	//value, err := redis.String(conn.Do("GET", "mykey"))
	//if err != nil {
	//	fmt.Println("字符串获取失败:", err)
	//} else {
	//	fmt.Printf("字符串获取成功: %v \n", value)
	//}
}
